import formCreate from "@form-create/element-ui";
import ELEMENT from "element-ui";
import "element-ui/lib/theme-chalk/index.css";
import Vue from "vue";
import FcDesigner from "../src/index.js";
// import App from "./App.vue";
import App from "./Preview.vue";
import Cookies from 'js-cookie'

formCreate.fetch = (options) => {
  // 获取或生成 Token
  const token = Cookies.get('Admin-Token') || "yth-token"; // 这里的 token 可以从 Vuex、localStorage 或其他地方获取
  // 设置请求头，附加 Authorization token
  const headers = {
    ...options.headers,
    AccessToken: token,
  };
  const optionsData = {
    ...options.data,
    accessToken: token,
  };
  const optionsQuery = {
    ...options.query,
    accessToken: token,
  };
  if (options.method == "GET" && optionsQuery) {
    let paramsArray = [];
    //get请求拼接参数
    Object.keys(optionsQuery).forEach((key) =>
      paramsArray.push(key + "=" + optionsQuery[key])
    );
    if (options.action.search(/\?/) === -1) {
      options.action += "?" + paramsArray.join("&");
    } else {
      options.action += "&" + paramsArray.join("&");
    }
  }
  // 发起请求
  fetch(options.action, {
    method: options.method || "GET", // 默认请求方法为 GET
    headers: headers, // 包含 Authorization 的请求头
    body: options.method !== "GET" ? JSON.stringify(optionsData) : null, // 如果是 POST 或其他方法，添加请求体
  })
    .then((response) => response.json()) // 解析响应为 JSON
    .then((data) => {
      if (options.onSuccess) {
        options.onSuccess(data); // 成功回调
      }
    })
    .catch((error) => {
      if (options.onError) {
        options.onError(error); // 失败回调
      }
    });
};
Vue.use(ELEMENT);
Vue.use(formCreate);
Vue.component("FcDesigner", FcDesigner);

Vue.config.productionTip = false;

new Vue({
  render: (h) => h(App),
}).$mount("#app");
